package xby.study.annotations.repeatable;

import java.lang.annotation.Annotation;
import java.util.Arrays;

/**
 * 可重复注解，如果实际不重复，则.getAnnotation(Result.class) 可以获取到重复注解
 * 只要可重复注解 ，实际重复注解了， 则getAnnotation(Result.class) 是获取不到 重复注解的， 只能获取到 重复注解的容器注解
 */
//@Result(name = "郭京敏")
//@Result(name = "郭京敏2")
public class Son extends Father implements Ye{
    public static void main(String[] args) {

        Result res= Son.class.getAnnotation(Result.class);
        System.out.println(res);

        Results res2= Son.class.getAnnotation(Results.class);
        System.out.println(res2);
        for (Annotation a:res2.value()) {
            System.out.println(a);

        }

        System.out.println("-------------");

        Result[] rs = Son.class.getAnnotationsByType(Result.class);
        System.out.println(Arrays.toString(rs));

        System.out.println("-------------");

        Result[] rs2 = Son.class.getDeclaredAnnotationsByType(Result.class);
        System.out.println(Arrays.toString(rs2));


    }
}

@Result(name = "张丹萍")
@Result(name = "CMN")
class Father{

}


/**
 * 再次强调！   java 注解的继承只是类， 不包含接口！！！
 */
@Result(age=55)
interface Ye{}